package org.wlc.demov1Impl;

import java.math.BigDecimal;
import java.util.Map;

/**
 * @author 王立朝
 * @date 2022/5/11
 * @description: 满减
 */
public class MjCouponDiscount implements ICouponDiscount<Map<String,String>>{
    /**
     * 满减计算, 例如： 满100，减30
     *       1. 判断满足x元后-n元，否则不减
     *       2. 最低支付金额1元
     * @param couponInfo 券折扣信息；直减、满减、折扣、N元购
     * @param skuPrice   商品价格
     * @return 优惠后的价格
     */
    @Override
    public BigDecimal discountAmount(Map<String, String> couponInfo, BigDecimal skuPrice) {
        // 满x元，符合满减条件
        String x = couponInfo.get("x");
        // 符合满减条件，减o元
        String n = couponInfo.get("n");

        // 判断商品价格是否满足满减条件，如果不满足，就返回原价；如果满足就计算满减后的价格并返回
        if(skuPrice.compareTo(new BigDecimal(x))<0){
            return skuPrice;
        }
        // 减去优惠价格
        BigDecimal discountAmount = skuPrice.subtract(new BigDecimal(n));
        if(discountAmount.compareTo(BigDecimal.ZERO)<1){
            // 最低支付1元
            return BigDecimal.ONE;
        }

        return discountAmount;
    }
}
